#ifndef OASIS_H
#define OASIS_H

#include <QWidget>
#include <QMovie>
#include <QLabel>
#include <QStackedWidget>
#include <QLineEdit>
#include <QPushButton>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QGraphicsOpacityEffect>

#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>
#include "farmdiarywindow.h"

QT_BEGIN_NAMESPACE
namespace Ui { class oasis; }
QT_END_NAMESPACE

class oasis : public QWidget
{
    Q_OBJECT

public:
    oasis(QWidget *parent = nullptr);
    ~oasis();

    void setupInputField(QLineEdit *field, const QString &placeholder);
    void setupButton(QPushButton *button);

    void db_init();
    bool db_insert(QString name, QString pswd);
    bool db_select(QString name, QString pswd);
    bool db_select_u(QString name);

private slots:

    void onLoginClicked();

    void onRegisterClicked();

signals:
    void logon(QString,QString);

protected:
    void resizeEvent(QResizeEvent *event) override;

private:
    Ui::oasis *ui;

    QSqlDatabase db;
    FarmDiaryWindow *farm;

    QLabel *bgLabel;   // 背景标签
    QMovie *movie;     // GIF动画对象
    QWidget *mask;     // 半透明遮罩层

    QWidget *loginPanel;       // 登录面板容器
    QLineEdit *usernameEdit;  // 用户名输入框
    QLineEdit *passwordEdit;  // 密码输入框
    QPushButton *loginButton; // 登录按钮
    QPushButton *registerButton; // 注册按钮
    QLabel *titleLabel;       // 标题文本

};
#endif // OASIS_H
